<?php 

    /**
     * This file is part of the Intelligencer package.
     * For the full copyright and license, please view the LICENSE
     * file that was distributed with this source code.
     * 
     * @author         Roman Drapeko <roman.drapeko@gmail.com>
     * @copyright      Roman Drapeko <roman.drapeko@gmail.com>, 2009 - present
     */

    /**
     * Scanner Result. Contains classes, interfaces and their locations.
     * @author drapeko
     */
    interface itScannerResultI {
        
        /**
         * Sets the class and its location
         * @param string $className
         * @param string $path
         * @return void
         */
        public function setClass($className, $path);
        
        /**
         * Sets the interface and its location
         * @param string $className
         * @param string $path
         * @return void
         */
        public function setInterface($className, $path);
        
        /**
         * Returns the location by the class name
         * @param string $className
         * @return string
         */
        public function getClass($className);
        
        /**
         * Returns the location by the interface name
         * @param string $className
         * @return string
         */
        public function getInterface($className);
        
        /**
         * Checks whether class exists
         * @param string $className
         * @return boolean
         */
        public function hasClass($className);
        
        /**
         * Checks whether interface exists
         * @param string $className
         * @return boolean
         */
        public function hasInterface($className);
        
        /**
         * Returns an array of the interfaces
         * @return array
         */
        public function getInterfaceArray();
        
        /**
         * Returns an array of the classes
         * @return array
         */
        public function getClassArray();
    }
    
?>